# Copyright 2021 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

load("//build_tools/bazel:build_defs.oss.bzl", "iree_runtime_cc_library")

package(
    default_visibility = ["//visibility:public"],
    features = ["layering_check"],
    licenses = ["notice"],  # Apache 2.0
)

iree_runtime_cc_library(
    name = "webgpu",
    srcs = [
        "api.h",
        "bind_group_cache.c",
        "bind_group_cache.h",
        "buffer.c",
        "buffer.h",
        "builtins.c",
        "builtins.h",
        "command_buffer.c",
        "command_buffer.h",
        "executable.c",
        "executable.h",
        "nop_event.c",
        "nop_event.h",
        "nop_executable_cache.c",
        "nop_executable_cache.h",
        "nop_semaphore.c",
        "nop_semaphore.h",
        "pipeline_layout.c",
        "pipeline_layout.h",
        "simple_allocator.c",
        "simple_allocator.h",
        "staging_buffer.c",
        "staging_buffer.h",
        "webgpu_device.c",
        "webgpu_device.h",
    ],
    hdrs = [
        "api.h",
    ],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/internal",
        "//runtime/src/iree/base/internal:arena",
        "//runtime/src/iree/base/internal/flatcc:parsing",
        "//runtime/src/iree/hal",
        "//runtime/src/iree/hal/drivers/webgpu/platform",
        "//runtime/src/iree/hal/drivers/webgpu/shaders",
        "//runtime/src/iree/hal/utils:buffer_transfer",
        "//runtime/src/iree/hal/utils:executable_debug_info",
        "//runtime/src/iree/hal/utils:executable_header",
        "//runtime/src/iree/hal/utils:file_transfer",
        "//runtime/src/iree/hal/utils:files",
        "//runtime/src/iree/hal/utils:queue_emulation",
        "//runtime/src/iree/hal/utils:queue_host_call_emulation",
        "//runtime/src/iree/schemas:executable_debug_info_c_fbs",
        "//runtime/src/iree/schemas:webgpu_executable_def_c_fbs",
        "@webgpu_headers",
    ],
)
